Passed
Push — master ( 67261f...67f253 )
by Miloš
02:58
created

AbstractStorage.subscribeUser   A

Complexity

Conditions 2

Size

Total Lines 17
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 17
rs 9.7
c 0
b 0
f 0
cc 2

1 Function

Rating   Name   Duplication   Size   Complexity  
A AbstractStorage.getNewUser 0 6 1
1
import { AngularFireAuth } from "@angular/fire/auth";
2
import { User as FirebaseUser } from "firebase";
3
import { Observable } from "rxjs";
4
import { UniFirebaseLoginConfig } from "../config/uni-firebase-login-config";
5
import { UniFirebaseLoginConfigProvider } from "../config/uni-firebase-login-config-provider";
6
import { UserModel } from "../model/user-model";
7
import { IStorageProvider } from "./i-storage-provider";
8
9
export abstract class AbstractStorage<User extends UserModel = UserModel>
10
    implements IStorageProvider<User> {
11
    protected config: UniFirebaseLoginConfig;
12
13
    protected constructor(
14
        protected angularFireAuth: AngularFireAuth,
15
        configProvider: UniFirebaseLoginConfigProvider,
16
    ) {
17
        this.config = configProvider.config;
18
    }
19
20
    public abstract async updateStoredDataByUser(user: User): Promise<void>;
21
22
    public abstract async updateStoredDataByFirebaseUser(
23
        firebaseUser: FirebaseUser,
24
    ): Promise<void>;
25
26
    public abstract subscribeUserDataFromStorageByFirebaseUser(
27
        user: FirebaseUser,
28
    ): Observable<User | null>;
29
30
    /**
31
     * Override this method if you want to use custom model class
32
     */
33
    protected getNewUser(): User {
34
        return this.config.userFactoryFunc() as User;
35
    }
36
}
37